package com.example.deploysinggle.test1.common.util.dto;

/**
 * @author Administrator
 * @version 1.0
 * @description: TODO
 * @date 2024/11/20 14:57
 */
public class Functions {
  //无参无返回值方法
    @FunctionalInterface
    public interface VoidFunction{
        void doAction();
    }
    //无参无返回值方法 返回一个实体类的方法
    @FunctionalInterface
    public interface FunctionR<R>{
        R apply();
    }
    //有参返回值为对象方法 返回一个实体类的方法
    @FunctionalInterface
    public interface Function<T1,R>{
        R apply(T1 t1);
    }
    //有参无返回值的方法
    @FunctionalInterface
    public interface VoidFunctionWith1<T1>{
        void doAction(T1 t1);
    }
    //俩参有返回值的方法
    @FunctionalInterface
    public interface BiFunction<T1,T2,R>{
        R apply(T1 t1,T2 t2);
    }
    //俩参有返回值的方法
    @FunctionalInterface
    public interface VoidFunctionWith2<T1,T2>{
        void doAction(T1 t1,T2 t2);
    }

    //三参有返回值的方法
    @FunctionalInterface
    public interface TriFunction<T1,T2,T3,R>{
        R apply(T1 t1,T2 t2,T3 t3);
    }

    //四参有返回值的方法
    @FunctionalInterface
    public interface FourFunction<T1,T2,T3,T4,R>{
        R apply(T1 t1,T2 t2,T3 t3,T4 t4);
    }

    //五参有返回值的方法
    @FunctionalInterface
    public interface FiverFunction<T1,T2,T3,T4,T5,R>{
        R apply(T1 t1,T2 t2,T3 t3,T4 t4,T5 t5);
    }

    //六参有返回值的方法
    @FunctionalInterface
    public interface SixrFunction<T1,T2,T3,T4,T5,T6,R>{
        R apply(T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6);
    }

    //七参有返回值的方法
    @FunctionalInterface
    public interface SevenFunction<T1,T2,T3,T4,T5,T6,T7,R>{
        R apply(T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6,T7 t7);
    }

    //八参有返回值的方法
    @FunctionalInterface
    public interface EightrFunction<T1,T2,T3,T4,T5,T6, T7,T8,R>{
        R apply(T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6,T7 t7,T8 t8);
    }
    //九参有返回值的方法
    @FunctionalInterface
    public interface NinerFunction<T1,T2,T3,T4,T5,T6,T7,T8,T9,R>{
        R apply(T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6,T7 t7,T8 t8,T9 t9);
    }


}
